From b2fbf5a2d883b57afcc59382151ceddab65fd405 Mon Sep 17 00:00:00 2001 From: Marina Zhurakhinskaya Date: Thu, 22 Jan 2009 21:28:19 +0000 Subject: [PATCH] shell-global.c: remove a log message about missing 'Categories' key in the desktop file, as this key is not required main.js: set desktop environment to "GNOME" so that GIO can determine correctly which applications should be shown in the menus. appDisplay.js: filter out applications that should not be shown in the menus, check if get_executable() for GAppInfo is not null before using it svn path=/trunk/; revision=163 --- js/ui/appDisplay.js | 16 ++++++++++++---- js/ui/main.js | 5 ++++- src/shell-global.c | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index e897eb7a3..7a5f59e02 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -142,6 +142,10 @@ AppDisplay.prototype = { let apps = Gio.app_info_get_all(); for (let i = 0; i < apps.length; i++) { let appInfo = apps[i]; + + if (!appInfo.should_show()) + continue; + let appId = appInfo.get_id(); this._allItems[appId] = appInfo; // [] is returned if we could not get the categories or the list of categories was empty @@ -195,10 +199,14 @@ AppDisplay.prototype = { return true; } - let exec = itemInfo.get_executable().toLowerCase(); - if (exec.indexOf(search) >= 0) - return true; - + if (itemInfo.get_executable() == null) { + log("Missing an executable for " + itemInfo.get_name()); + } else { + let exec = itemInfo.get_executable().toLowerCase(); + if (exec.indexOf(search) >= 0) + return true; + } + // we expect this._categories.hasOwnProperty(itemInfo.get_id()) to always be true here let categories = this._categories[itemInfo.get_id()]; for (let i = 0; i < categories.length; i++) { diff --git a/js/ui/main.js b/js/ui/main.js index 18ade8b81..272b559a6 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -2,6 +2,7 @@ const Clutter = imports.gi.Clutter; const Shell = imports.gi.Shell; +const Gio = imports.gi.Gio; const Signals = imports.signals; const Mainloop = imports.mainloop; const Tweener = imports.tweener.tweener; @@ -104,7 +105,9 @@ Signals.addSignalMethods(ClutterFrameTicker.prototype); function start() { let global = Shell.Global.get(); - + + Gio.DesktopAppInfo.set_desktop_env("GNOME"); + global.grab_dbus_service(); global.start_task_panel(); diff --git a/src/shell-global.c b/src/shell-global.c index c6ad467d1..af2868409 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -378,7 +378,7 @@ shell_get_categories_for_desktop_file(const char *desktop_file_name) &error); if (error != NULL) { - g_warning ("Error when getting 'Categories' from a key file %s: %s", desktop_file_name, error->message); + // "Categories" is not a required key in the desktop files, so it's ok if we didn't find it g_clear_error (&error); } } -- 2.39.5